#!/bin/bash

# AIDE 快速初始化脚本
# 适用于已有Docker和Node.js环境的快速部署

set -e

echo "🚀 AIDE 快速初始化脚本"
echo "========================"

# 检查必需软件
echo "🔍 检查环境..."
command -v node >/dev/null 2>&1 || { echo "❌ Node.js未安装"; exit 1; }
command -v docker >/dev/null 2>&1 || { echo "❌ Docker未安装"; exit 1; }
echo "✅ 环境检查通过"

# 进入项目目录
if [ ! -f "package.json" ]; then
    if [ -d "aide" ]; then
        cd aide
    else
        echo "❌ 请在AIDE项目目录中运行此脚本"
        exit 1
    fi
fi

# 安装依赖
echo "📦 安装依赖..."
npm install
cd backend && npm install
cd ../frontend && npm install
cd ..
echo "✅ 依赖安装完成"

# 设置数据库
echo "🗄️  设置数据库..."
DB_PASSWORD="aide$(date +%s | tail -c 6)"
echo "数据库密码: $DB_PASSWORD"

# 清理旧容器
docker stop postgres-aide 2>/dev/null || true
docker rm postgres-aide 2>/dev/null || true
docker volume rm postgres_aide_data 2>/dev/null || true

# 创建数据库容器
docker run \
    --name postgres-aide \
    -e POSTGRES_PASSWORD="$DB_PASSWORD" \
    -e POSTGRES_DB=aide \
    -p 5432:5432 \
    -v postgres_aide_data:/var/lib/postgresql/data \
    -d postgres:latest

echo "⏳ 等待数据库启动..."
sleep 15

# 测试数据库连接
if docker exec postgres-aide pg_isready -U postgres; then
    echo "✅ 数据库启动成功"
else
    echo "❌ 数据库启动失败"
    docker logs postgres-aide
    exit 1
fi

# 初始化数据库
echo "🔧 初始化数据库..."
export DATABASE_URL="postgresql://postgres:$DB_PASSWORD@localhost:5432/aide"
cd backend
node init-database-fixed.js
cd ..
echo "✅ 数据库初始化完成"

# 构建前端
echo "🏗️  构建前端..."
npm run build:frontend
echo "✅ 前端构建完成"

# 创建环境文件
echo "📝 创建环境配置..."
cat > backend/.env << EOF
NODE_ENV=development
PORT=5000
DATABASE_URL=$DATABASE_URL
JWT_SECRET=$(openssl rand -base64 32)
EOF

cat > frontend/.env << EOF
VITE_API_BASE_URL=http://localhost:5000/api
VITE_APP_NAME=AIDE 任务管理系统
EOF

# 创建启动脚本
cat > start.sh << 'EOF'
#!/bin/bash
echo "🚀 启动AIDE..."
if ! docker ps | grep -q postgres-aide; then
    echo "启动数据库..."
    docker start postgres-aide
    sleep 5
fi
npm run dev
EOF
chmod +x start.sh

echo ""
echo "🎉 AIDE 初始化完成！"
echo ""
echo "📋 配置信息:"
echo "   数据库密码: $DB_PASSWORD"
echo "   配置文件: backend/.env"
echo ""
echo "🚀 启动命令:"
echo "   ./start.sh"
echo "   或: npm run dev"
echo ""
echo "🌐 访问地址:"
echo "   http://localhost:3000"
echo ""
echo "✨ 开始使用AIDE吧！"
